//封装关于购物车的API接口函数
import request from "@/utils/request";

/**
 * 获取商品的最新信息 价格 库存 以及 是否有效
 * @param {String} skuId   -商品的skuId
 */

export const getNewCartGoods = (skuId) => {
  return request(`/goods/stock/${skuId}`,'get')
}

/**
 * 获取商品的specs和skus
 * @param {String} skuId - 商品SKUID
 * @returns Promise
 */

export const getGoodsSku = (skuId) => {
  return request(`/goods/sku/${skuId}`,'get')
}

/**
 * 合并本地购物车
 * @param {Array<object>} cartList - 本地购物车数组
 * @param {String} item.skuId - 商品SKUID
 * @param {Boolean} item.selected - 是否选中
 * @param {Integer} item.count - 数量
 */

export const mergeLocalCart = (cartList) => {
  return request('/member/cart/merge','post',cartList)
}


/**
 * 获取登录后的购物车列表
 * @returns Promise
 */
export const findCartList = () => {
  return request('/member/cart','get')
}

/**
 * 加入购物车
 * @param {String} skuId - 商品SKUID
 * @param {Integer} count - 商品数量
 * @returns Promise
 */
export const insertCartApi = ({skuId,count}) => {
  return request('/member/cart','post',{skuId,count})
}

/**
 * 删除商品（支持批量删除）
 * @param {Array<string>} ids - skuId集合
 * @returns Promise
 */
export const deleteCartApi = (ids) => {
  return request('/member/cart','DELETE',{ids})
}

/**
 * 修改购物车商品的状态和数量
 * @param {String} goods.skuId - 商品sku
 * @param {Boolean} goods.selected - 选中状态
 * @param {Integer} goods.count - 商品数量
 * @returns Promise
 */
export const updateCartApi = (goods) => {
  return request(`member/cart/${goods.skuId}`,'put',goods)
}

/**
 * 全部选中&取消全选
 * @param {Boolean} selected - 选中状态
 * @param {Array<string>} ids - skuId 的集合
 */
 export const checkAllCartApi = ({ selected, ids }) => {
  return request('/member/cart/selected', 'put', { selected, ids })
}

